package flex.cc.store.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import flex.cc.store.dto.vo.StoreCouponVo;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import flex.cc.store.dto.entity.StoreCouponEntity;


/**
*
* @author R
* 2021年12月15日下午13:48:16
* @desc 卡券表数据层
*/
@Mapper
@Repository
public interface StoreCouponDao extends BaseMapper<StoreCouponEntity>{


	/**
	* 
	* @author R
	* 2021年12月15日下午13:48:16
	* @desc 根据归属服务包获取卡券详细信息
	*/
	List<StoreCouponEntity> queryByPackageCode(String packageCode);
	
	/**
	 * 
	 * @author R
	 * 2021年12月15日下午13:48:16
	 * @desc 插入
	 */
	int insert(StoreCouponEntity storeCouponEntity);

    /**
     * @description 根据卡券类型查询服务券列表
     * @param reqVo 卡券
     * @return
     * @author wkangle
     * @time 2021/12/15 0015 16:00
     * @exception/throws
    */
    List<StoreCouponVo> queryCouponList(@Param("qv") Map<String, Object> reqVo);

    /**
	 * 
	 * @author WANGCONG
	 * 2021年12月16日下午1:51:56
	 * @desc 根据卡券码查询实体信息
	 */
	StoreCouponEntity queryByCouponNum(String couponNum);

	/**
	 * @description 根据参数查询卡券实体
	 * @param params 查询参数
	 * @return
	 * @author wkangle
	 * @time 2021/12/16 0016 10:38
	 * @exception/throws
	 */
	StoreCouponEntity getOneByParams(Map<String, Object> params);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年12月16日下午2:38:36
	 * @desc 查询当前月 ，同一车牌号，相同服务类型的服务次数（用于核销）
	 */
	int findServiceNum(@Param("qv") Map<String, String> params);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年12月17日下午14:02:51
	 * @desc 根据map参数更新卡券信息
	 */
	int updateByParam(@Param("qv") Map<String, Object> params);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年12月27日上午9:37:26
	 * @desc 根据map参数查询卡券信息集合
	 */
	List<StoreCouponEntity> findListByParam(@Param("qv") Map<String, Object> params);

	/**
	 * @author R
	 * 2021年12月29日上午9:47:56
	 * @desc 根据map参数查询卡券信息集合
	 */
	List<StoreCouponEntity> findCouponInfo(@Param("qv") Map<String, Object> params);

	/**
	 * @author KSY
	 * 2022年1月5日
	 * @desc 查询卡券列表
	 */
	IPage<StoreCouponEntity> queryCardListWithPage(Page<StoreCouponEntity> page, @Param("storeCouponVo") StoreCouponEntity storeCouponVo);

	/**
	 * @author KSY
	 * 2022年1月7日
	 * @desc 卡券部分导出
	 */
    IPage<StoreCouponEntity> queryCardListWithDataIds(Page<StoreCouponEntity> page, @Param("storeCouponVo")StoreCouponEntity vo);

	/**
	 * @author R
	 * 2022年01月28日  16:10:56
	 * @desc 根据卡券编码 删除卡券信息 
	 */
    int delByCouponNum(String couponNum);
    
    /**
	 * @author R
	 * 2022年03月21日  08:46:56
	 * @desc 根据服务包编码 查询医护类卡券信息
	 */
    List<StoreCouponEntity> findYHCoupon(String packageCodeCF);
}
